//
//  SAStageEventManager.h
//  GameFrame
//
//  Created by Hiroshi Nomura on 2013/11/22.
//  Copyright (c) 2013年 Hiroshi Nomura. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "SAStageObject.h"
#import "SAEventMessage.h"
#import "SAEventClientInterface.h"

static int const MAX_EVENT_MESSAGE_QUEUE_SIZE = 256;

@interface SAEventManager : NSObject

-(id)initWithCapacity:(int)capacity;

-(void)dispatchEvent;

-(void)swapEventQueue;

-(void)registerEventListener:(id<SAEventClientInterface>*)listener type:(SAEventType)type;

-(void)unregisterEventListener:(id<SAEventClientInterface>*)listener type:(SAEventType)type;

-(void)sendEvent:(id<SAEventClientInterface>*)sender message:(SAEventMessage*)message;

@end
